/**
 * @file utils.h
 * @brief 工具函数库的头文件，提供各种通用功能
 */

 #ifndef UTILS_H
 #define UTILS_H
 


 #include <stdint.h>
 

 #ifdef __cplusplus
 extern "C" {
 #endif
 /**
  * @brief 在位标志数组中设置指定位置的标志
  * 
  * @param array 位标志数组
  * @param pos 要设置的位的位置
  */
 void setFlag(uint32_t* array, uint16_t pos);
 
 /**
  * @brief 在位标志数组中清除指定位置的标志
  * 
  * @param array 位标志数组
  * @param pos 要清除的位的位置
  */
 void clearFlag(uint32_t* array, uint16_t pos);
 
 /**
  * @brief 检查位标志数组中指定位置的标志是否被设置
  * 
  * @param array 位标志数组
  * @param pos 要检查的位的位置
  * @return uint8_t 如果标志被设置则返回1，否则返回0
  */
 uint8_t checkFlag(uint32_t* array, uint16_t pos);
 
 /**
  * @brief 在位标志数组中切换指定位置的标志状态
  * 
  * @param array 位标志数组
  * @param pos 要切换的位的位置
  */
 void toggleFlag(uint32_t* array, uint16_t pos);
 

#ifdef __cplusplus
 }  
#endif

 #endif /* UTILS_H */